home *** CD-ROM | disk | FTP | other *** search
/ InterCD 2000 September / september_2000.iso / intercd / root / ^Linux / WindowMaker / WPrefs.app / Expert.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-17  |  3.9 KB  |  127 lines

  1. /* Expert.c- expert user options
  2.  * 
  3.  *  WPrefs - Window Maker Preferences Program
  4.  * 
  5.  *  Copyright (c) 1998 Alfredo K. Kojima
  6.  * 
  7.  *  This program is free software; you can redistribute it and/or modify
  8.  *  it under the terms of the GNU General Public License as published by
  9.  *  the Free Software Foundation; either version 2 of the License, or
  10.  *  (at your option) any later version.
  11.  *
  12.  *  This program is distributed in the hope that it will be useful,
  13.  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.  *  GNU General Public License for more details.
  16.  *
  17.  *  You should have received a copy of the GNU General Public License
  18.  *  along with this program; if not, write to the Free Software
  19.  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, 
  20.  *  USA.
  21.  */
  22.  
  23.  
  24. #include "WPrefs.h"
  25.  
  26. typedef struct _Panel {
  27.     WMFrame *frame;
  28.     char *sectionName;
  29.  
  30.     char *description;
  31.  
  32.     CallbackRec callbacks;
  33.     
  34.     WMWindow *win;
  35.  
  36.     WMButton *swi[8];
  37.  
  38. } _Panel;
  39.  
  40.  
  41.  
  42. #define ICON_FILE    "expert"
  43.  
  44.  
  45. static void
  46. showData(_Panel *panel)
  47. {
  48.     WMUserDefaults *udb = WMGetStandardUserDefaults();
  49.  
  50.     WMSetButtonSelected(panel->swi[0], GetBoolForKey("DisableMiniwindows"));
  51.     WMSetButtonSelected(panel->swi[1], WMGetUDBoolForKey(udb, "NoXSetStuff"));
  52.     WMSetButtonSelected(panel->swi[2], GetBoolForKey("SaveSessionOnExit"));
  53.     WMSetButtonSelected(panel->swi[3], GetBoolForKey("UseSaveUnders"));
  54.     WMSetButtonSelected(panel->swi[4], GetBoolForKey("DisableBlinking"));
  55.     WMSetButtonSelected(panel->swi[5], GetBoolForKey("DontConfirmKill"));
  56. }
  57.  
  58.  
  59. static void
  60. createPanel(Panel *p)
  61. {
  62.     _Panel *panel = (_Panel*)p;
  63.     int i;
  64.     
  65.     panel->frame = WMCreateFrame(panel->win);
  66.     WMResizeWidget(panel->frame, FRAME_WIDTH, FRAME_HEIGHT);
  67.     WMMoveWidget(panel->frame, FRAME_LEFT, FRAME_TOP);
  68.  
  69.     for (i=0; i<6; i++) {
  70.     panel->swi[i] = WMCreateSwitchButton(panel->frame);
  71.     WMResizeWidget(panel->swi[i], FRAME_WIDTH-40, 25);
  72.     WMMoveWidget(panel->swi[i], 20, 20+i*25);
  73.     }
  74.     
  75.     WMSetButtonText(panel->swi[0], _("Disable miniwindows (icons for miniaturized windows). For use with KDE/GNOME."));
  76.     WMSetButtonText(panel->swi[1], _("Do not set non-WindowMaker specific parameters (do not use xset)"));
  77.     WMSetButtonText(panel->swi[2], _("Automatically save session when exiting WindowMaker"));
  78.     WMSetButtonText(panel->swi[3], _("Use SaveUnder in window frames, icons, menus and other objects"));
  79.     WMSetButtonText(panel->swi[4], _("Disable cycling color highlighting of icons."));
  80.     WMSetButtonText(panel->swi[5], _("Disable confirmation panel for the Kill command."));
  81.  
  82.     WMRealizeWidget(panel->frame);
  83.     WMMapSubwidgets(panel->frame);
  84.     
  85.     showData(panel);
  86. }
  87.  
  88.  
  89. static void
  90. storeDefaults(_Panel *panel)
  91. {
  92.     WMUserDefaults *udb = WMGetStandardUserDefaults();
  93.  
  94.     SetBoolForKey(WMGetButtonSelected(panel->swi[0]), "DisableMiniwindows");
  95.  
  96.     WMSetUDBoolForKey(udb, WMGetButtonSelected(panel->swi[1]), "NoXSetStuff");
  97.  
  98.     SetBoolForKey(WMGetButtonSelected(panel->swi[2]), "SaveSessionOnExit");
  99.     SetBoolForKey(WMGetButtonSelected(panel->swi[3]), "UseSaveUnders");
  100.     SetBoolForKey(WMGetButtonSelected(panel->swi[4]), "DisableBlinking");
  101.     SetBoolForKey(WMGetButtonSelected(panel->swi[5]), "DontConfirmKill");
  102. }
  103.  
  104.  
  105. Panel*
  106. InitExpert(WMScreen *scr, WMWindow *win)
  107. {
  108.     _Panel *panel;
  109.  
  110.     panel = wmalloc(sizeof(_Panel));
  111.     memset(panel, 0, sizeof(_Panel));
  112.  
  113.     panel->sectionName = _("Expert User Preferences");
  114.  
  115.     panel->description = _("Options for people who know what they're doing...\n"
  116.                "Also have some other misc. options.");
  117.  
  118.     panel->win = win;
  119.  
  120.     panel->callbacks.createWidgets = createPanel;
  121.     panel->callbacks.updateDomain = storeDefaults;
  122.     
  123.     AddSection(panel, ICON_FILE);
  124.  
  125.     return panel;
  126. }
  127.